package bean;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

/**
 * Author:shixiaojun@itany.com
 * Date:2022/5/18 14:49
 * Version:1.0-SNAPSHOT
 * Description:
 */
// 存在四种表示bean标签配置的注解
// 这四种注解效果基本一致
// 在不同的场合选择不同的注解
// @Repository:持久层bean,一般用于持久层
// @Service:业务层bean,一般用于业务层
// @Controller:控制器bean,一般用于控制器
// @Component:普通bean,除了上述三种场合以外的情况
// bean标签所对应的class即为当前注解所在的类
// bean标签所对应的id属性,可以通过参数配置
// 默认情况下,id属性值即为当前类名,首字母小写
// 可以通过为注解配置参数,指定id属性值
// 配置的参数即为id属性值
//@Repository
//@Service
//@Controller
@Component
public class SomeBean {

    // @Autowired:此处的自动装配,会由Spring自动使用合适的装配方式
    // @Autowired@Qualifier("ob"):表示根据bean的id属性值进行自动装配,很少使用
//    @Autowired@Qualifier("ob")
    @Autowired
    private OtherBean otherBean;

    @Override
    public String toString() {
        return "SomeBean{" +
                "otherBean=" + otherBean +
                '}';
    }

    public OtherBean getOtherBean() {
        return otherBean;
    }

    public void setOtherBean(OtherBean otherBean) {
        this.otherBean = otherBean;
    }
}
